package plp.expressions2.expression;

import plp.expressions1.util.Tipo;
import plp.expressions1.util.TipoPrimitivo;
import plp.expressions2.memory.AmbienteCompilacao;

/**
 * Objetos desta classe encapsulam valor inteiro.
 */
public class ValorInteiro extends ValorConcreto<Integer> {

	/**
	 * Cria <code>ValorInteiro</code> contendo o valor fornecido.
	 */
	public ValorInteiro(Integer valor) {
		super(valor);
	}
	
	//--------------------------------------------------------------------------------------------------
	//-----------------Construtor para utilizacao da selecao dos erros no editor.-----------------------
	public ValorInteiro(int valor, int line, int beginColumn, int endColumn) 
	{
		super(valor);
		this.line = line;
		this.beginColumn = beginColumn;
		this.endColumn = endColumn;
	}
	//--------------------------------------------------------------------------------------------------

	/**
	 * Retorna os tipos possiveis desta expressao.
	 * 
	 * @param amb
	 *            o ambiente de compila��o.
	 * @return os tipos possiveis desta expressao.
	 */
	public Tipo getTipo(AmbienteCompilacao amb) {
		return TipoPrimitivo.INTEIRO;
	}

}
